//*****************************************************************************
// Classification:   UNCLASSIFIED//FOUO
//
// NAME:  GeoidzShapeFactory.java
//
// AUTHOR/DATE:  Mark  12/15/11
//
// DESCRIPTION: 
//
//*****************************************************************************

/*Expression selection is undefined on line 12, column 5 in Templates/Classes/Class.java.*/
package com.mark.geoidz.modules.geoidz_Core.shapes;

import gov.nasa.worldwind.geom.Angle;
import gov.nasa.worldwind.geom.Position;
import gov.nasa.worldwind.render.Ellipsoid;
import gov.nasa.worldwind.render.RigidShape;

/**
 *
 * @author Mark
 */
public class GeoidzShapeFactory
{
   // <editor-fold defaultstate="expanded" desc="Private Members">



   // </editor-fold>
   
   // <editor-fold defaultstate="expanded" desc="Helpers">
   
   public enum ShapeType_e
   {
      ELLIPSOID,
      CUBE,
      CYLINDER,
      CONE     
   }
   
   // </editor-fold>

   // <editor-fold defaultstate="expanded" desc="Constructor(s)">



   // </editor-fold>

   // <editor-fold defaultstate="expanded" desc="Working Functions">

   /**
    * Generates a shape of the given type, with the given initial attributes 
    * (detailed below).
    * @param aType Type of shape to create, as supported by Geoidz
    * @param aInitialAttributes Variable sized parameter list for initial attributes
    * of the shape.  Attribute list must include the following for these shapes: <br />
    * 
    * <p>
    *    ELLIPSOID <br />
    *    {Position, double, double, double} <br />
    *    {Position, double, double, double, Angle, Angle, Angle}
    * </p>
    * @return 
    */
   public static GeoidzShape createShape(ShapeType_e aType, Object ... aInitialAttributes)
   {
      GeoidzShape theShape = null;
      
      switch (aType)
      {
         case ELLIPSOID:
         {     
            theShape = new GeoidzEllipsoid();
            theShape.initShape(aInitialAttributes);
            break;            
         }
      }
      
      return theShape;
   }

   // </editor-fold>


   // <editor-fold defaultstate="expanded" desc="Properties">



   // </editor-fold>
}
